home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
swagn_r.zip
/
NETWORK.SWG
/
0011_NETWARE User name.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-11-21
|
2KB
|
73 lines
{
From: NORBERT IGL
Subj: Netware "User name"
I need a way to get the current user name from the netware shell.
For instance, if I'm logged into server MYSERVER as user SUPERVISOR,
I need some way to get 'supervisor' as the user name. (Kind of like
WHOAMI would return: You are user SUPERVISOR on server MYSERVER)
}
uses dos;
function lStationNumber:byte; { MY logical Station(connection)-Number }
var regs : Registers;
begin
regs.ah := $DC;
MsDos(regs );
lStationNumber := pcregs.al;
end;
function GetUserName( Station: byte):String;
Var
i : byte;
Regs : Registers;
name : string[50];
Reply : Record
Filler1 : Array [1..8] of byte;
ObjectName : Array [1..48] of Byte;
Filler2me : Array [1..8] of Byte;
End;
Request : Record
PacketLen : Integer;
vFunc : Byte;
ConnNb : Byte;
End;
Begin
With Request do
begin
PacketLen := 2;
vFunc := 22;
ConnNbm := Station;
End;
Reply.ReturnLength := 62;
With Regs Do Begin
Ah := $e3;
Ds := Seg(Request);
Si := Ofs(Request);
Es := Seg(Reply);
Di := Ofs(Reply);
End;
MsDos(Reg);
{ 1 2 3 4 }
{123456789012345678901234567890123456789012345678}
name := ' ';
If Regs.al = 0 Then with reply do
begin
move( objectName[1] , name[1], 48 );
i := pos(#0, name );
name[0] := char(i-1);
end;
end;
[...]
var me : byte;
begin
me := lStationNumber;
writeln(' Hello, ', GetUserName( me ),
' you''re hooked in on Station # ', me );
end.